package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjPrdVehInfoDTO;
import cn.fl.project.vo.PrjPrdVehInfoVO;

 /**
 * @Description: 实际车辆明细信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjPrdVehInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrjPrdVehInfoDTO
	 * @return PrjPrdVehInfoVO
	 */
	public static PrjPrdVehInfoVO toVO(PrjPrdVehInfoDTO dto) {
		PrjPrdVehInfoVO  vo = null;
		if (dto != null) { 
			vo = new PrjPrdVehInfoVO();
			vo.setId(dto.getId());
			vo.setCertNo(dto.getCertNo());//合格证编号
			vo.setCertDt(dto.getCertDt());//发证日期
			vo.setMfrNm(dto.getMfrNm());//厂商名称
			vo.setVehBr(dto.getVehBr());//品牌
			vo.setVehNm(dto.getVehNm());//车辆名称
			vo.setPrdMdl(dto.getPrdMdl());//车辆型号
			vo.setVin(dto.getVin());//车架号
			vo.setCarCl(dto.getCarCl());//车身颜色
			vo.setChsMdl(dto.getChsMdl());//底盘型号
			vo.setChsId(dto.getChsId());//底盘ID
			vo.setChsCertNo(dto.getChsCertNo());//底盘合格证编号
			vo.setEngMdl(dto.getEngMdl());//发动机型号
			vo.setEngNo(dto.getEngNo());//发动机号
			vo.setFuelTyp(dto.getFuelTyp());//燃料种类
			vo.setOutVol(dto.getOutVol());//排量（ml）
			vo.setMaxKw(dto.getMaxKw());//功率（kW）
			vo.setEmiStd(dto.getEmiStd());//排放标准
			vo.setOilCns(dto.getOilCns());//油耗
			vo.setOutlineSz(dto.getOutlineSz());//外廓尺寸（mm）
			vo.setCntrSz(dto.getCntrSz());//货厢内部尺寸（mm）
			vo.setLeafSprNum(dto.getLeafSprNum());//钢板弹簧片数（片）
			vo.setWhlNum(dto.getWhlNum());//轮胎数
			vo.setWhlSpec(dto.getWhlSpec());//轮胎规格
			vo.setThread(dto.getThread());//轮距(前/后)（mm）
			vo.setWhlBase(dto.getWhlBase());//轴距（mm）
			vo.setAxleLoad(dto.getAxleLoad());//轴荷（kg）
			vo.setAxisNum(dto.getAxisNum());//轴数
			vo.setStrTyp(dto.getStrTyp());//转向形式
			vo.setTotWgt(dto.getTotWgt());//TOT_WGT
			vo.setCurbWgt(dto.getCurbWgt());//整备质量（kg）
			vo.setRatedWgt(dto.getRatedWgt());//额定载质量（kg）
			vo.setWgtCoe(dto.getWgtCoe());//载质量利用系数
			vo.setTraTotWgt(dto.getTraTotWgt());//准牵引总质量（kg）
			vo.setSemiMaxWgt(dto.getSemiMaxWgt());//半挂车鞍座最大允许总质量（kg）
			vo.setCabSeatQty(dto.getCabSeatQty());//驾驶室准乘人数（人）
			vo.setRatedSeatQty(dto.getRatedSeatQty());//额定载客（人）
			vo.setMaxSpd(dto.getMaxSpd());//最高设计车速（km/h）
			vo.setProDt(dto.getProDt());//车辆制造日期
			vo.setDtlRem(dto.getDtlRem());//备注
			vo.setAudStsCd(dto.getAudStsCd());//审核状态（SYS0019）
			vo.setPInstId(dto.getPInstId());//流程实例ID
			vo.setPNo(dto.getPNo());//流程编号
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setPrjPrdId(dto.getPrjPrdId());
			vo.setDtlId(dto.getDtlId());//明细Id
			vo.setPrjPrdDtl(PrjPrdDtlVOTransform.toVO(dto.getPrjPrdDtl()));//产品明细
			vo.setAudStsCdNm(dto.getAudStsCdNm());//审核状态

			vo.setGpsCardNo(dto.getGpsCardNo());// GPS卡号1
			vo.setGpsAudStsCd(dto.getGpsAudStsCd());// GPS审核状态
			vo.setGpsAudStsNm(dto.getGpsAudStsNm());// GPS审核状态名称
			//-------------------------分页附加数据--------------------------------//
			vo.setPrjId(dto.getPrjId());
			vo.setLsCntNo(dto.getLsCntNo());
			vo.setPrjTypCd(dto.getPrjTypCd());
			vo.setBizTypCd(dto.getBizTypCd());
			vo.setCstNm(dto.getCstNm());
			vo.setPaySchNo(dto.getPaySchNo());
			vo.setPrdNm(dto.getPrdNm());
			vo.setPrdMdl(dto.getPrdMdl());
			vo.setPrjTypCdNm(dto.getPrjTypCdNm());
			vo.setBizTypCdNm(dto.getBizTypCdNm());
			vo.setPaySchId(dto.getPaySchId());
			vo.setPrjPrdId(dto.getPrjPrdId());
			vo.setPrjEngMdl(dto.getPrjEngMdl());
			vo.setPrjPrdMdl(dto.getPrjPrdMdl());
			
			vo.setPrdEngMdl(dto.getPrdEngMdl());
			vo.setPrdMdl(dto.getPrdMdl());
			vo.setPrdTypCd(dto.getPrdTypCd());
			vo.setDtlPrdMdl(dto.getDtlPrdMdl());
			
			vo.setPrdQty(dto.getPrdQty());
			vo.setGuidePc(dto.getGuidePc());
			vo.setBrCd(dto.getBrCd());
			vo.setGpsCardNo(dto.getGpsCardNo());
			vo.setGpsCardNo2(dto.getGpsCardNo2());
			vo.setLnkCompId(dto.getLnkCompId());
			vo.setLnkCompNm(dto.getLnkCompNm());
			vo.setVinValidRes(dto.getVinValidRes());
			vo.setVinValidResNm(dto.getVinValidResNm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrjPrdVehInfoVO
	 * @return PrjPrdVehInfoDTO
	 */
	public static PrjPrdVehInfoDTO toDTO(PrjPrdVehInfoVO vo) {
		PrjPrdVehInfoDTO dto = null;
		if (vo != null) {
			dto = new PrjPrdVehInfoDTO();
			dto.setId(vo.getId());
			dto.setCertNo(vo.getCertNo());//合格证编号
			dto.setCertDt(vo.getCertDt());//发证日期
			dto.setMfrNm(vo.getMfrNm());//厂商名称
			dto.setVehBr(vo.getVehBr());//品牌
			dto.setVehNm(vo.getVehNm());//车辆名称
			dto.setPrdMdl(vo.getPrdMdl());//车辆型号
			dto.setVin(vo.getVin());//车架号
			dto.setCarCl(vo.getCarCl());//车身颜色
			dto.setChsMdl(vo.getChsMdl());//底盘型号
			dto.setChsId(vo.getChsId());//底盘ID
			dto.setChsCertNo(vo.getChsCertNo());//底盘合格证编号
			dto.setEngMdl(vo.getEngMdl());//发动机型号
			dto.setEngNo(vo.getEngNo());//发动机号
			dto.setFuelTyp(vo.getFuelTyp());//燃料种类
			dto.setOutVol(vo.getOutVol());//排量（ml）
			dto.setMaxKw(vo.getMaxKw());//功率（kW）
			dto.setEmiStd(vo.getEmiStd());//排放标准
			dto.setOilCns(vo.getOilCns());//油耗
			dto.setOutlineSz(vo.getOutlineSz());//外廓尺寸（mm）
			dto.setCntrSz(vo.getCntrSz());//货厢内部尺寸（mm）
			dto.setLeafSprNum(vo.getLeafSprNum());//钢板弹簧片数（片）
			dto.setWhlNum(vo.getWhlNum());//轮胎数
			dto.setWhlSpec(vo.getWhlSpec());//轮胎规格
			dto.setThread(vo.getThread());//轮距(前/后)（mm）
			dto.setWhlBase(vo.getWhlBase());//轴距（mm）
			dto.setAxleLoad(vo.getAxleLoad());//轴荷（kg）
			dto.setAxisNum(vo.getAxisNum());//轴数
			dto.setStrTyp(vo.getStrTyp());//转向形式
			dto.setTotWgt(vo.getTotWgt());//TOT_WGT
			dto.setCurbWgt(vo.getCurbWgt());//整备质量（kg）
			dto.setRatedWgt(vo.getRatedWgt());//额定载质量（kg）
			dto.setWgtCoe(vo.getWgtCoe());//载质量利用系数
			dto.setTraTotWgt(vo.getTraTotWgt());//准牵引总质量（kg）
			dto.setSemiMaxWgt(vo.getSemiMaxWgt());//半挂车鞍座最大允许总质量（kg）
			dto.setCabSeatQty(vo.getCabSeatQty());//驾驶室准乘人数（人）
			dto.setRatedSeatQty(vo.getRatedSeatQty());//额定载客（人）
			dto.setMaxSpd(vo.getMaxSpd());//最高设计车速（km/h）
			dto.setProDt(vo.getProDt());//车辆制造日期
			dto.setDtlRem(vo.getDtlRem());//备注
			dto.setAudStsCd(vo.getAudStsCd());//审核状态（SYS0019）
			dto.setPInstId(vo.getPInstId());//流程实例ID
			dto.setPNo(vo.getPNo());//流程编号
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			
			dto.setDtlId(vo.getDtlId());//明细Id
			dto.setPrjPrdDtl(PrjPrdDtlVOTransform.toDTO(vo.getPrjPrdDtl()));//产品明细
			dto.setAudStsCdNm(vo.getAudStsCdNm());//审核状态
			//-------------------------分页附加数据--------------------------------//
			dto.setPrjId(vo.getPrjId());
			dto.setLsCntNo(vo.getLsCntNo());
			dto.setPrjTypCd(vo.getPrjTypCd());
			dto.setBizTypCd(vo.getBizTypCd());
			dto.setCstNm(vo.getCstNm());
			dto.setPaySchNo(vo.getPaySchNo());
			dto.setPrdNm(vo.getPrdNm());
			dto.setPrdMdl(vo.getPrdMdl());
			dto.setPrjTypCdNm(vo.getPrjTypCdNm());
			dto.setBizTypCdNm(vo.getBizTypCdNm());
			dto.setPrjPrdId(vo.getPrjPrdId());
			dto.setPrjEngMdl(vo.getPrjEngMdl());
			dto.setPrjPrdMdl(vo.getPrjPrdMdl());
			
			dto.setPrdEngMdl(vo.getPrdEngMdl());
			dto.setPrdMdl(vo.getPrdMdl());
			dto.setPrdTypCd(vo.getPrdTypCd());
			dto.setDtlPrdMdl(vo.getDtlPrdMdl());
			dto.setPrdQty(vo.getPrdQty());
			dto.setGuidePc(vo.getGuidePc());
			dto.setBrCd(vo.getBrCd());
			dto.setGpsCardNo(vo.getGpsCardNo());
			dto.setGpsCardNo2(vo.getGpsCardNo2());
			dto.setLnkCompId(vo.getLnkCompId());
			dto.setLnkCompNm(vo.getLnkCompNm());
			dto.setVinValidRes(vo.getVinValidRes());
			dto.setVinValidResNm(vo.getVinValidResNm());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrjPrdVehInfoDTO>
	 * @return List<PrjPrdVehInfoVO>
	 */
	public static List<PrjPrdVehInfoVO> toVOList(List<PrjPrdVehInfoDTO> list) {
		List<PrjPrdVehInfoVO>  voList = new ArrayList<PrjPrdVehInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdVehInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjPrdVehInfoVO>
	 * @return List<PrjPrdVehInfoDTO>
	 */
	public static List<PrjPrdVehInfoDTO> toDTOList(List<PrjPrdVehInfoVO> list) {
		List<PrjPrdVehInfoDTO>  dtoList = new ArrayList<PrjPrdVehInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdVehInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
